/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package pessoas.grafico;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
import pessoas.collection.Contatos;
import pessoas.interfaces.IGrafico;

/**
 *
 * @author Bush
 */
public class GraficoColunas implements IGrafico {

    @Override
    public JFreeChart exibirGrafico(Contatos contatos) {
        DefaultCategoryDataset ds = new DefaultCategoryDataset();
        for(int i=0; i<contatos.getContatos().size(); i++){
            String oper = contatos.getContatos().get(i).getOperadora();
            String uf =  contatos.getContatos().get(i).getUf();            
            int valor = contatos.quantidadeContatosUf(contatos, oper,uf);
            ds.addValue(valor, oper, uf);
        }
        
        // cria o gráfico
        JFreeChart grafico = ChartFactory.createBarChart("Gráfico Estatístico", "UF",
                "Quantidade", ds, PlotOrientation.VERTICAL, true, true, false);

        OutputStream arquivo;
        try {
            arquivo = new FileOutputStream("png/grafico.png");
            ChartUtilities.writeChartAsPNG(arquivo, grafico, 773, 552);
        } catch (FileNotFoundException ex) {
            Logger.getLogger(GraficoColunas.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
            Logger.getLogger(GraficoColunas.class.getName()).log(Level.SEVERE, null, ex);
        }
        return grafico;
    }

}
